import { request, BaseResponse } from '@/utils/request';
/**
 * @description 权限控制
 * @param {Namespace} isMock
 * @param isGetDataDirectly
 * @returns
 */

/**
 * 获取域下拉
 * @param any
 * @returns
 */

export function GetRegion() {
  return request<BaseResponse<Array<Namespace.commandType>>>(
    {
      url: `/sys/unit/getenumlist/region_select`,
      method: 'get',
    },
    {
      isMock: false,
      isGetDataDirectly: false,
    },
  );
}

/**
 * 查询获取权限点
 * @param regionId
 * @returns
 */

export function RegionQuery(query: { regionId: number }) {
  return request<BaseResponse<Namespace.unitTree>>(
    {
      url: `/sys/permissions/getpermissions`,
      method: 'get',
      params: query,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
    },
  );
}
// export function RegionQuery(query: { regionId: number }) {
//   return request<BaseResponse<Array<Namespace.commandRegion>>>(
//     {
//       url: `/sys/permissions/getpermissions`,
//       method: 'get',
//       params: query,
//     },
//     {
//       isMock: false,
//       isGetDataDirectly: false,
//     },
//   );
// }

/**
 * 查询获取权限点详细数据
 * @param id
 * @returns
 */

export function RegionQueryDetails(query: { id: number }) {
  return request<BaseResponse<Namespace.commandRegion>>(
    {
      url: `/sys/permissions/getdata`,
      method: 'get',
      params: query,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
    },
  );
}

/**
 * 修改权限点
 * @param 实体
 * @returns
 */

export function updatePost(data: Namespace.commandRegion) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/updata`,
      method: 'post',
      data,
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '修改成功',
    },
  );
}

/**
 * 新增权限点
 * @param 实体
 * @returns
 */

export function savePost(data: Namespace.commandRegion) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/save`,
      method: 'post',
      data,
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '新增成功',
    },
  );
}

/**
 * 删除权限点
 * @param 实体
 * @returns
 */

export function deletePost(data: { id: number }) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/remove`,
      method: 'post',
      data,
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    },
    {
      isMock: false,
      isGetDataDirectly: false,
    },
  );
}

/**
 * 查询表格
 * @param list
 * @returns
 */

export function GetTable(query: { id: number; unitId: number }) {
  return request<BaseResponse<Array<Namespace.commandTable>>>(
    {
      url: `/sys/permissions/getpermissionsline`,
      method: 'get',
      params: query,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
    },
  );
}

/**
 * 赋予权限
 * @param list
 * @returns
 */

export function commpandGive(data: { id: number; unitData: string }) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/savepermissionsline`,
      method: 'post',
      data,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '操作成功',
    },
  );
}

/**
 * 移除权限
 * @param list
 * @returns
 */

export function commpandRemove(data: { rId: Array<number> }) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/removepermissionsline`,
      method: 'post',
      data,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '操作成功',
    },
  );
}

/**
 * 拆分权限（顶部拆分）
 * @param parentName 父级名称
 * @param splitName 拆分名称
 * @param origId 原始id
 * @param perIds 权限id集合
 */

export function SplitPermission(data: split) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/splitPermission`,
      method: 'post',
      data,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '操作成功',
    },
  );
}

/**
 * 拆分权限（拆分拥有父级id的同级）
 * @param parentId 父级id
 * @param splitName 拆分名称
 * @param origId 原始id
 * @param perIds 权限id集合
 */

export function SplithavePermission(data: split) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/splitPermission2`,
      method: 'post',
      data,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '操作成功',
    },
  );
}

/**
 * 拆分权限（拆分拥有父级id的子级）
 * @param splitName 拆分名称
 * @param origId 原始id
 * @param perIds 权限id集合
 */

export function SplithavePermission1(data: split) {
  return request<BaseResponse>(
    {
      url: `/sys/permissions/splitPermission3`,
      method: 'post',
      data,
    },
    {
      isMock: false,
      isGetDataDirectly: false,
      successMsg: '操作成功',
    },
  );
}
